﻿#ifndef TABWIDGET_H
#define TABWIDGET_H

#include <QTabWidget>
#include <QAction>
#include <QWebEnginePage>
#include <QLineEdit>
#include "webview.h"

class WebView;

namespace Ui {
class TabWidget;
}

class TabWidget : public QTabWidget
{
    Q_OBJECT

public:
    explicit TabWidget(QWebEngineProfile *profile, QWidget *parent = nullptr);
    ~TabWidget();

    // 当前正在查看的WebView页面
    WebView *currentWebView() const;
    WebView *webView(int idx) const;
    void setCurrentWebView(WebView *webView);

    // 新建标签页
    WebView * createTab();
    WebView *createBackgroundTab();

    void handleIconChanged(int idx, QIcon icon);

    void setupView(WebView *webView);

    // 标签页相关
    void closeTab(int idx);
    void removeTab(int idx);

private:
    Ui::TabWidget *ui;
    QWebEngineProfile *m_profile;

signals:
    // 窗口标题改变信号
    void titleChanged(QString title);
    // url改变
    void urlChanged(QUrl url);
    // 进度改变
    void loadProgress(int progress);        // 预留，如果加上标题栏或者某些动画的时候可能需要使用到进度值
    // 鼠标放到超链接上的信号
    void linkHovered(const QString url);
    // 标签页图标更新信号
    void favIconChanged(QIcon icon);

    // 更改某些浏览器（应用本身）配置
    void webActionEnabledChanged(QWebEnginePage::WebAction action, bool enabled);

    //
    void urlNotSafe(QString url);

    // 检查url是否已经被收藏
    void checkUrlIsMark(QString url);

public slots:



private slots:

};

#endif // TABWIDGET_H
